﻿using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;

namespace Snake1._0
{
    public class Snake : GameComponent
    {
        CorpoSnake _corpo;

        public Snake(Game game)
            : base(game)
        {
            _corpo = new CorpoSnake(game);
        }

        public void Update(GameTime gameTime)
        {
            UpdateInput();

            _corpo.Update(gameTime);
        }

        private void UpdateInput()
        {
            KeyboardState keyState = Keyboard.GetState();

            // Obtem os inputs, tomando cuidado para que a cobra não seja possível
            // 
            if (keyState.IsKeyDown(Keys.Up) && _corpo.Direcao != DirecaoSnake.Baixo)
            {
                _corpo.Direcao = DirecaoSnake.Cima;
            }
            else if(keyState.IsKeyDown(Keys.Down) && _corpo.Direcao != DirecaoSnake.Cima)
            {
                _corpo.Direcao = DirecaoSnake.Baixo;
            }
            else if (keyState.IsKeyDown(Keys.Right) && _corpo.Direcao != DirecaoSnake.Esquerda)
            {
                _corpo.Direcao = DirecaoSnake.Direita;
            }
            else if (keyState.IsKeyDown(Keys.Left) && _corpo.Direcao != DirecaoSnake.Direita)
            {
                _corpo.Direcao = DirecaoSnake.Esquerda;
            }
        }

        public void Draw(GameTime gameTime)
        {
            _corpo.Draw(gameTime);
        }
    }
}
